package com.ruoyi.find.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 家具工单对象 furniture_work_order
 * 
 * @author ruoyi
 * @date 2025-05-24
 */
public class FurnitureWorkOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 工单ID */
    private Long orderId;

    /** 工单编号 */
    @Excel(name = "工单编号")
    private String orderCode;

    /** 家具ID */
    @Excel(name = "家具ID")
    private Long furnitureId;

    /** 家具名称 */
    @Excel(name = "家具名称")
    private String furnitureName;

    /** 卖家用户ID */
    @Excel(name = "卖家用户ID")
    private Long sellerUserId;

    /** 卖家用户名 */
    @Excel(name = "卖家用户名")
    private String sellerUserName;

    /** 买家用户ID */
    @Excel(name = "买家用户ID")
    private Long buyerUserId;

    /** 买家用户名 */
    @Excel(name = "买家用户名")
    private String buyerUserName;

    /** 交易类型：1-出售 2-租赁 */
    @Excel(name = "交易类型", readConverterExp = "1=-出售,2=-租赁")
    private Integer transactionType;

    /** 交易金额 */
    @Excel(name = "交易金额")
    private BigDecimal transactionAmount;

    /** 租赁期限（月） */
    @Excel(name = "租赁期限（月）")
    private Integer leaseMonths;

    /** 工单状态：1-待确认 2-待付款 3-待发货 4-待收货 5-已完成 6-已取消 */
    @Excel(name = "工单状态", readConverterExp = "1=-待确认,2=-待付款,3=-待发货,4=-待收货,5=-已完成,6=-已取消")
    private Integer orderStatus;

    /** 下单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "下单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date orderTime;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /** 发货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发货时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date shipTime;

    /** 完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date completeTime;

    /** 收货地址 */
    @Excel(name = "收货地址")
    private String shippingAddress;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String contactPhone;

    /** 备注 */
    @Excel(name = "备注")
    private String remark;

    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId()
    {
        return orderId;
    }
    public void setOrderCode(String orderCode)
    {
        this.orderCode = orderCode;
    }

    public String getOrderCode()
    {
        return orderCode;
    }
    public void setFurnitureId(Long furnitureId)
    {
        this.furnitureId = furnitureId;
    }

    public Long getFurnitureId()
    {
        return furnitureId;
    }
    public void setFurnitureName(String furnitureName)
    {
        this.furnitureName = furnitureName;
    }

    public String getFurnitureName()
    {
        return furnitureName;
    }
    public void setSellerUserId(Long sellerUserId)
    {
        this.sellerUserId = sellerUserId;
    }

    public Long getSellerUserId()
    {
        return sellerUserId;
    }
    public void setSellerUserName(String sellerUserName)
    {
        this.sellerUserName = sellerUserName;
    }

    public String getSellerUserName()
    {
        return sellerUserName;
    }
    public void setBuyerUserId(Long buyerUserId)
    {
        this.buyerUserId = buyerUserId;
    }

    public Long getBuyerUserId()
    {
        return buyerUserId;
    }
    public void setBuyerUserName(String buyerUserName)
    {
        this.buyerUserName = buyerUserName;
    }

    public String getBuyerUserName()
    {
        return buyerUserName;
    }
    public void setTransactionType(Integer transactionType)
    {
        this.transactionType = transactionType;
    }

    public Integer getTransactionType()
    {
        return transactionType;
    }
    public void setTransactionAmount(BigDecimal transactionAmount)
    {
        this.transactionAmount = transactionAmount;
    }

    public BigDecimal getTransactionAmount()
    {
        return transactionAmount;
    }
    public void setLeaseMonths(Integer leaseMonths)
    {
        this.leaseMonths = leaseMonths;
    }

    public Integer getLeaseMonths()
    {
        return leaseMonths;
    }
    public void setOrderStatus(Integer orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus()
    {
        return orderStatus;
    }
    public void setOrderTime(Date orderTime)
    {
        this.orderTime = orderTime;
    }

    public Date getOrderTime()
    {
        return orderTime;
    }
    public void setPayTime(Date payTime)
    {
        this.payTime = payTime;
    }

    public Date getPayTime()
    {
        return payTime;
    }
    public void setShipTime(Date shipTime)
    {
        this.shipTime = shipTime;
    }

    public Date getShipTime()
    {
        return shipTime;
    }
    public void setCompleteTime(Date completeTime)
    {
        this.completeTime = completeTime;
    }

    public Date getCompleteTime()
    {
        return completeTime;
    }
    public void setShippingAddress(String shippingAddress)
    {
        this.shippingAddress = shippingAddress;
    }

    public String getShippingAddress()
    {
        return shippingAddress;
    }
    public void setContactPhone(String contactPhone)
    {
        this.contactPhone = contactPhone;
    }

    public String getContactPhone()
    {
        return contactPhone;
    }
    public void setRemark(String remark)
    {
        this.remark = remark;
    }

    public String getRemark()
    {
        return remark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("orderCode", getOrderCode())
            .append("furnitureId", getFurnitureId())
            .append("furnitureName", getFurnitureName())
            .append("sellerUserId", getSellerUserId())
            .append("sellerUserName", getSellerUserName())
            .append("buyerUserId", getBuyerUserId())
            .append("buyerUserName", getBuyerUserName())
            .append("transactionType", getTransactionType())
            .append("transactionAmount", getTransactionAmount())
            .append("leaseMonths", getLeaseMonths())
            .append("orderStatus", getOrderStatus())
            .append("orderTime", getOrderTime())
            .append("payTime", getPayTime())
            .append("shipTime", getShipTime())
            .append("completeTime", getCompleteTime())
            .append("shippingAddress", getShippingAddress())
            .append("contactPhone", getContactPhone())
            .append("remark", getRemark())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}